02. Gradle의 Task
Gradle은 명령에 의해 테스크(task) 을 수행할 수 있다.
🛠Task
01. 기본
build.gradle
에서 테스크의 처리를 기술해두면, 그것을 gradle 명령으로 호출 실행 시킬 수 있다.
task 테스크명 {
처리
}
task hello {
println('hello world')
}
02. doFirst와 doLast
task 테스크명 {
doFirst {
처리
}
doLast {
처리
}
}
- doFirst : 최초에 수행하는 액션
- doLast : 최후에 수행 하는 액션
03. 매개변수 전달
task hello {
doLast {
def n = max.toInteger()
for(def i in 1..n){
println("No," + i + " count.")
}
println("--end.")
}
}
태스크는 수행할 때 필요한 값을 매개 변수로 전달할 수 있다.
$ gradle hello -Pmax=값
위와 같은 명령어로 실행가능하다.
04. 다른 테스크 호출
task a {……}
tasks.a.execute()
작업하는 것은 모든 tasks라고 객체에 정리하고 있으며 그 중 execute
를 호출해 실행한다.
05. 종속 테스크 지정
어떤 테스크를 수행할 때, 다른 작업 수행이 필수적인 경우에는 dependsOn
을 사용한다.
task 테스크명 (dependsOn : '테스크') {
처리
}
task 테스크명 {
dependsOn : '테스크'
처리
}
위와 같은 방법들을 이용하면 작업이 호출될 때, 먼저 dependsOn
에 지정된 작업을 수행하고 그것이 끝난 후에 테스크의 본 처리를 수행함.
06. Default Task 상속 클래스
Gradle은 표준으로 다양한 테스크가 포함되어 있는데, 이것들은 DefaultTask
라는 클래스를 상속한 클래스이다.
class 클래스 extends DefaultTask {
...... 필드 ......
void 메소드(인수) {
...... 처리 ......
}
@TaskAction
void 메소드() {
...... 처리 ......
}
}
테스크로 수행할 처리를 메소드로 제공한다. 이 메소드에는 @TaskAction
어노테이션을 붙인다.
- 외부에서 사용하는 경우는 private 필드로 설정하여 접근을 위한 메소드를 따로 제공하자.
reference: https://gradle.org/ http://www.devkuma.com/books/pages/1064